package com.scale.service.voice.service;

import com.example.conversation.vo.MessageVO;
import com.example.voice.dto.ProcessMessageDTO;
import com.example.voice.dto.SpeechToTextDTO;
import com.example.voice.dto.TextToSpeechDTO;
import com.example.voice.dto.UploadUserAudioDTO;
import com.example.voice.vo.SpeechToTextVO;
import com.example.voice.vo.TextToSpeechVO;
import com.example.voice.vo.UploadUserAudioVO;

/**
 * 语音处理服务接口
 * @author crp
 * @since 2025-09-24
 */
public interface VoiceProcessService {

    /**
     * 语音转文字
     */
    SpeechToTextVO speechToText(SpeechToTextDTO speechToTextDTO);

    /**
     * 文字转语音
     */
    TextToSpeechVO textToSpeech(TextToSpeechDTO textToSpeechDTO);

    /**
     * 完整语音对话流程
     */
    MessageVO processVoiceMessage(ProcessMessageDTO processMessageDTO);

    /**
     * 上传用户录音文件
     * @param uploadUserAudioDTO 用户录音上传DTO
     * @return 上传结果
     */
    UploadUserAudioVO uploadUserAudio(UploadUserAudioDTO uploadUserAudioDTO);
}
